package com.kh.pajx.sop.service.user;

import java.util.List;

import com.kh.pajx.sop.domain.SysInsideUser;
import com.kh.pajx.sop.base.IBaseService;

/**
 * 内部用户业务逻辑接口
 * @author:	azzcsimp
 * @Createdate:	2014年7月21日 上午9:44:35
 */
public interface ISysInsideUserService extends IBaseService<SysInsideUser> {
	
	/**
	 * 根据部门编号获取内部用户信息
	 * @param groupCode 用户组编号
	 * @return List<SysInsideUser> 内部用户信息列表
	 * @throws Exception   
	 * @author:	azzcsimp
	 * @Createdate:	2015年1月2日 下午2:08:07
	 */
	List<SysInsideUser> findUserByGroup(String groupCode) throws Exception;
	
	/**
	 * 根据部门编号获取内部用户信息
	 * @param groupCode 用户组编号
	 * @param userStatus 用户状态
	 * @return List<SysInsideUser> 内部用户信息列表
	 * @throws Exception   
	 * @author:	azzcsimp
	 * @Createdate:	2015年1月2日 下午2:08:07
	 */
	List<SysInsideUser> findUserByGroup(String groupCode, int userStatus) throws Exception;
	
	
	
	
	
	
	
	
	
	
	
	
	
	// =========================以下为需要整理或废弃方法===================================	
	
	/**
	 * 校验手机号是否存在
	 * @param phone
	 * @return   
	 * @author:	azzcsimp
	 * @Createdate:	2014年12月3日 下午6:12:15
	 */
	boolean checkPhone(String phone,String uId);

	/**
	 * 用户登录
	 * @param account 登录账户名
	 * @param password 登录密码
	 * @return   SysInsideUser 内部用户信息
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月21日 下午3:56:35
	 */
	public SysInsideUser login(String account, String password);
	
	/**
	 * 根据用户组编码获取内部用户信息列表
	 * @param groupCode 用户组编码
	 * @return   
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月23日 下午5:18:59
	 */
	List<SysInsideUser> getUserByGroupCode(String groupCode);
	
	List<SysInsideUser> getUserByGroupCode(String groupCode, int flag);
	
	/**
	 * 根据角色编码获取用户内部信息列表
	 * @param roleCode 角色编码
	 * @return   
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月23日 下午5:19:24
	 */
	List<SysInsideUser> getUserByRoleCode(String roleCode);
	
	List<SysInsideUser> getUserByRoleCode(String roleCode, int flag);
	List<SysInsideUser> getUserByRoleCode(String roleCode, int flag,String deptCode);
	/**
	 * 根据部门编码获取内部用户信息列表
	 * @param deptCode
	 * @return   
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月23日 下午5:19:47
	 */
	List<SysInsideUser> getUserByDeptCode(String deptCode);
	
	List<SysInsideUser> getUserByDeptCode(String deptCode, int flag);

	/**
	 * 根据角色编码获取内部用户条目数
	 * @param usrCode 角色编码
	 * @return   
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月23日 下午5:53:44
	 */
	public long countUserByRoleCode(String usrCode);

	/**
	 * 根据部门编码获取内部用户条目数
	 * @param deptCode
	 * @return   
	 * @author:	azzcsimp
	 * @Createdate:	2014年7月23日 下午6:18:22
	 */
	public long countUserByDeptCode(String deptCode);

	boolean checkPhone(String isuPhone);
	
}
